package application;

public enum Variables {
	ACAP(1.46, 1.19, 1.00, 0.86, 0.71, -1.0),
	PCAP(1.42, 1.17, 1.00, 0.86, 0.70, -1.0),
	AEXP(1.29, 1.13, 1.00, 0.91, 0.82, -1.0),
	MODP(1.24, 1.10, 1.00, 0.91, 0.82, -1.0),
	TOOL(1.24, 1.10, 1.00, 0.91, 0.83, -1.0),
	VEXP(1.21, 1.10, 1.00, 0.90, -1.0, -1.0),
	LEXP(1.14, 1.07, 1.00, 0.95, -1.0, -1.0),
	SCED(1.23, 1.08, 1.00, 1.04, 1.10, -1.0),
	STOR(-1.0, -1.0, 1.00, 1.06, 1.21, 1.56),
	DATA(-1.0, 0.94, 1.00, 1.08, 1.16, -1.0),
	TIME(-1.0, -1.0, 1.00, 1.11, 1.30, 1.66),
	TURN(-1.0, 0.87, 1.00, 1.07, 1.15, -1.0),
	VIRT(-1.0, 0.87, 1.00, 1.15, 1.30, -1.0),
	RELY(0.75, 0.88, 1.00, 1.15, 1.40, -1.0),
	CPLX(0.70, 0.85, 1.00, 1.15, 1.30, 1.65);

	private double veryLow;
	private double low;
	private double nominal;
	private double high;
	private double veryHigh;
	private double extraHigh;

	private Variables(double veryLow, double low, double nominal, double high, 
			double veryHigh, double extraHigh) {
		this.veryLow = veryLow;
		this.low = low;
		this.nominal = nominal;
		this.high = high;
		this.veryHigh = veryHigh;
		this.extraHigh = extraHigh;
	}

	public double getValue(EffortMult em) {
		double val = -1;
		switch(em) {
		case VERY_LOW:
			val = veryLow;
		case LOW:
			val = low;
		case NOMINAL:
			val =nominal;
		case HIGH:
			val = high;
		case VERY_HIGH:
			val = veryHigh;
		case EXTRA_HIGH:
			val = extraHigh;
		}
		return val;
	}

	@Override
	public String toString() {
		return name().toLowerCase();
	}
}
